package P077_UseShuffle;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

/**
 * @ClassName : UseShuffle
 * @Description : 使用shuffle打乱列表
 * @Author : wukj1
 * @Date: 2022/4/7
 **/
public class UseShuffle {

    //模拟云标签的动态变化
    @Test
    public void test(){
        int tagCloudNum = 5;
        List<String> tagClouds = new ArrayList<>(tagCloudNum);
        tagClouds.add("A");
        tagClouds.add("B");
        tagClouds.add("C");
        tagClouds.add("D");
        tagClouds.add("E");
        /*第一种方法*/
        Random random = new Random();
//        for (int i = 0; i < tagCloudNum; i++) {
//            //取得随机位置
//            int randomPosition = random.nextInt(tagCloudNum);
//            //当前元素与随机元素交换
//            String temp = tagClouds.get(i);
//            tagClouds.set(i,tagClouds.get(randomPosition));
//            tagClouds.set(randomPosition,temp);
//        }
        /*优化*/
//        for (int i = 0; i < tagCloudNum; i++) {
//            //取得随机位置
//            int randomPosition = random.nextInt(tagCloudNum);
//            //当前元素与随机元素交换
//            Collections.swap(tagClouds,i,randomPosition);
//        }
        /*使用shuffle*/
        //打乱顺序
        Collections.shuffle(tagClouds);

        tagClouds.forEach(System.out::print);
    }

}
